#include <iostream>
class base {
public:
    virtual void foo() {}
    virtual void foo1() {}
    virtual void foo2() {}
    virtual void foo3() {}
    virtual void foo4() {}
    virtual void foo5() {}
    void test1() {}
};
class diver : public base {
public:
    virtual void foo3() {}
    void foo() override {}
    void foo1() override {}
    void foo2() override {}
    void test4() {}
};
class diver1 : public base {
public:
    virtual void foo3() {}
    void foo() override {}
    void foo1() override {}
    void foo2() override {}
    void test4() {}
};
int main() {
    //
    base *BasePtr = new diver{};
    BasePtr->foo2();
    std::cout << &diver::foo2 << std::endl;
}
